
//课时11
/*输入3 4 5 6 7 9999一串整数，9999代表结束，通过头插法新建链表，并输出，通过尾插法新建链表并输出。
注意输出要采用如下代码（因为OJ判题对空格敏感，因此需要用下面的打印代码来做）：*/
#include <stdio.h>
#include <stdlib.h>
typedef struct List
{
    int val;
    struct List *next;
}List;

void PrintList(List *L)
{
    L=L->next;
    while(L!=NULL)
    {
        printf("%d ",L->val);//打印当前结点数据
        L=L->next;//指向下一个结点
    }
    printf("\n");
}

//头插
void headPush(List *head,int val)
{
    List* node=(List*)malloc(sizeof(List));
    if(node==NULL)
    {
        perror("malloc fail");
    }
    node->val=val;
    node->next=head->next;
    head->next=node;
}

//尾插
void tailPush(List *head,int val)
{
    List* node=(List*)malloc(sizeof(List));
    if(node==NULL)
    {
        perror("malloc fail");
    }
    node->val=val;
    node->next=NULL;
    while(head->next)
    {
        head=head->next;
    }
    head->next=node;
}

int main() {
    List head1,head2;
    head1.next=NULL;
    head2.next=NULL;

    int num;
    while(scanf("%d",&num))
    {
        if(num==9999)
        {
            break;
        }
        headPush(&head1,num);
    }
    while(scanf("%d",&num))
    {
        if(num==9999)
        {
            break;
        }
        tailPush(&head2,num);
    }
    PrintList(&head1);
    //printf("\n");
    PrintList(&head2);
    return 0;
}
